package com.tanhua.manager;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * 要实现定时任务，只需要两步：
 *      1. 在引导类上加注解@EnableScheduling
 *      2. 创建一个任务类，在类里方法上加注解@Scheduled(cron="表达式")
 * cron表达式说明：由六个域组成，域之间使用空格隔开
 *      语法： 秒 分 时 日 月 周
 *      每个域上都支持一些特殊符号：
 *          星号*：表示所有合法值都会触发
 *          问号?：表示不设置值。通常用在日和周域上。
 *              如果同时设置了日和周，可能会导致不可预估的后果
 *              注意：日和周两个域，只能设置一个值，另外一个值要设置成?
 *          逗号,：表示指定多个值
 *          横杠-：表示指定一个范围值
 *          斜杠/：表示递增值
 *
 *          字符L：表示最后一个值，可以用在日和周域上
 *              比如在周域上设置了  1L，表示每月最后一周触发；  3L，每月的最后一个周二触发
 *
 * 定时分析日志的任务
 *      要求：每隔半小时执行一次
 *      cron：0 0/30 * * * ?
 */
@EnableScheduling
@SpringBootApplication(exclude = {
        MongoAutoConfiguration.class,
        MongoDataAutoConfiguration.class
})
@MapperScan("com.tanhua.manager.mapper")
public class ManagerServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ManagerServerApplication.class, args);
    }
}
